
/* Generated by Interface Builder */

#import "InfoController.h"
#import <appkit/Window.h>
#import <appkit/Application.h>

@implementation InfoController

+ new				// make sure that *Panel is nil.
{
  self = [super new];
  infoPanel=nil;
  helpPanel=nil;
  licensePanel=nil;
  preferencesPanel=nil;
  return self;
}

- setInfoPanel:anObject		// set the infoPanel.
{
    infoPanel = anObject;
    return self;
}

- setHelpPanel:anObject		// set the helpPanel.
{
    helpPanel = anObject;
    return self;
}

- setLicensePanel:anObject	// set the licensePanel.
{
    licensePanel = anObject;
    return self;
}

- setPreferencesPanel:anObject	// set the preferencesPanel.
{
    preferencesPanel = anObject;
    return self;
}

- infoPanel		// return the infoPanel, load it if needed.
{
  if( !infoPanel)
    [NXApp loadNibSection:"InfoPanel.nib" owner:self withNames:NO];
  return infoPanel;
}

- helpPanel		// return the helpPanel, load it if needed.
{
  if( !helpPanel)
    [NXApp loadNibSection:"HelpPanel.nib" owner:self withNames:NO];
  return helpPanel;
}

- licensePanel		// return the licensePanel, load it if needed.
{
  if( !licensePanel)
    [NXApp loadNibSection:"LicensePanel.nib" owner:self withNames:NO];
  return licensePanel;
}

- preferencesPanel	// return the preferencesPanel, load it if needed.
{
  if( !preferencesPanel)
    [NXApp loadNibSection:"PreferencesPanel.nib" owner:self withNames:NO];
  return preferencesPanel;
}

- info:sender		// make the info panel be up there.
{
  [[self infoPanel] makeKeyAndOrderFront:sender];
  return self;
}

- help:sender		// make the help panel be up there.
{
  [[self helpPanel] makeKeyAndOrderFront:sender];
  return self;
}

- license:sender	// make the license panel be up there.
{
  [[self licensePanel] makeKeyAndOrderFront:sender];
  return self;
}

- preferences:sender	// make the preferences panel be up there.
{
  [[self preferencesPanel] makeKeyAndOrderFront:sender];
  return self;
}

// Are these useful?  I think not.  Not expensive, though.
- write:(NXTypedStream *)stream
{
    [super write:stream];
    NXWriteObjectReference( stream, infoPanel);
    NXWriteObjectReference( stream, helpPanel);
    NXWriteObjectReference( stream, licensePanel);
    NXWriteObjectReference( stream, preferencesPanel);
    return self;
}
- read:(NXTypedStream *)stream
{
    [super read:stream];
    infoPanel=NXReadObject( stream);
    helpPanel=NXReadObject( stream);
    licensePanel=NXReadObject( stream);
    preferencesPanel=NXReadObject( stream);
    return self;
}

@end
